.\" Copyright (c) 1980 Regents of the University of California.
.\" All rights reserved.  The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.\"	@(#)bk.4	6.1.1 (2.11BSD) 1996/1/27
.\"
.TH BK 4 "January 27, 1996"
.UC 4
.SH NAME
bk \- line discipline for machine-machine communication (obsolete)
.SH SYNOPSIS
.ft B
.nf
Not currently supported under 2.11BSD
.fi
.ft R
.SH DESCRIPTION
This line discipline provides a replacement for the old and new
tty drivers described in
.IR tty (4)
when high speed output to
and especially input from another machine is to be transmitted
over a asynchronous communications line.  The discipline
was designed for use by the Berkeley network.
It may be suitable for uploading of data from microprocessors into
the system.  If you are going to send data over asynchronous
communications lines at high speed into the system, you must
use this discipline, as the system otherwise may detect high
input data rates on terminal lines and disables the lines;
in any case the processing of such data when normal terminal
mechanisms are involved saturates the system.
.PP
The line discipline is enabled by a sequence:
.PP
.nf
.ft B
	#include <sgtty.h>
	int ldisc = NETLDISC, fildes; ...
	ioctl(fildes, TIOCSETD, &ldisc);
.fi
.ft R
.PP
A typical application program then reads a sequence of lines from
the terminal port, checking header and sequencing information on each
line and acknowledging receipt of each line to the sender, who then
transmits another line of data.  Typically several hundred bytes of
data and a smaller amount of control information will be received on
each handshake.
.PP
The old standard teletype discipline can be restored by doing:
.PP
.nf
.ft B
	ldisc = OTTYDISC;
	ioctl(fildes, TIOCSETD, &ldisc);
.fi
.ft R
.PP
While in networked mode, normal teletype output functions take place.
Thus, if an 8 bit output data path is desired, it is necessary
to prepare the output line by putting it into RAW mode using
.IR ioctl (2).
This must be done
.B before
changing the discipline with TIOCSETD, as most
.IR ioctl (2)
calls are disabled while in network line-discipline mode.
.PP
When in network mode, input processing is very limited to reduce overhead.
Currently the input path is only 7 bits wide, with newline the only
recognized character, terminating an input record.
Each input record must be read and acknowledged before the next input
is read as the system refuses to accept any new data when there
is a record in the buffer.  The buffer is limited in length, but the
system guarantees to always be willing to accept input resulting in
512 data characters and then the terminating newline.
.PP
User level programs should provide sequencing and checksums on the
information to guarantee accurate data transfer.
.SH "SEE ALSO"
tty(4)
.SH DIAGNOSTICS
None.
.SH BUGS
The Purdue uploading line discipline, which provides 8 bits and uses
timeout's to terminate uploading should be incorporated into the standard
system, as it is much more suitable for microprocessor connections.
